//
// File:	IDisplayManager.hpp
// Author:	Thomas TISSOT-DUPONT
// Login:	<thomas.tissotdupont@free.fr>
//
// Create:	22/01/2010 at 18:09:19
// Purpose:	
//
#ifndef IDISPLAYMANAGER_HPP
#define IDISPLAYMANAGER_HPP

#include "IView.hpp"
#include "IWindow.hpp"
#include "IRenderable.hpp"

class IDisplayManager
{
public:
	virtual				~IDisplayManager() {}

public:
	virtual bool		Start() = 0;
	virtual bool		Stop() = 0;

public:
	virtual IWindow		*GetWindow() const = 0;
	virtual void		InitWindow(const std::string &, int, int, bool = false) = 0;
	virtual void		DestroyWindow() = 0;

public:
	virtual bool		IsActive() const = 0;
	virtual void		SetActive(bool) = 0;

public:
	virtual void		Draw(const IRenderable &) = 0;

public:
	virtual IView		*GetView() const = 0;

protected:
	virtual void		Render() = 0;
};

#endif //!IDISPLAYMANAGER_HPP
